#!/system/bin/sh
#*******************************#
#         Geeky Engine          #
#         -------------         #
#      By Forever king@ xda     #
#-------------------------------#

sqlite=/system/xbin/sqlite3;
wifi_idle_wait=10000;

RETURN_VALUE=$($sqlite /data/data/com.android.providers.settings/databases/settings.db "select value from secure where name='wifi_idle_ms'");
echo "Current wifi_idle_ms value: $RETURN_VALUE";

if [ $RETURN_VALUE='' ] 
then
   echo "Creating row with wifi_idle_ms value: $wifi_idle_wait"
   $sqlite /data/data/com.android.providers.settings/databases/settings.db "insert into secure (name, value) values ('wifi_idle_ms', $wifi_idle_wait )"
else
   echo "Updating wifi_idle_ms value from $RETURN_VALUE to $wifi_idle_wait"
   $sqlite /data/data/com.android.providers.settings/databases/settings.db "update secure set value=$wifi_idle_wait where name='wifi_idle_ms'"
fi


# IO/Scheduler
if [ -f /sys/block/mmcblk0/queue/scheduler ]; then
	echo "noop" > /sys/block/mmcblk0/queue/scheduler;
fi;
if [ -f /sys/block/mmcblk1/queue/scheduler ]; then
	echo "noop" > /sys/block/mmcblk1/queue/scheduler;
fi;

if [ -f /sys/block/mmcblk0/queue/read_ahead_kb ]; then
	echo "4096" > /sys/block/mmcblk0/queue/read_ahead_kb;
fi;
if [ -f /sys/block/mmcblk1/queue/read_ahead_kb ]; then
	echo "4096" > /sys/block/mmcblk1/queue/read_ahead_kb;
fi;


if [ -e /sys/devices/virtual/bdi/default/read_ahead_kb ] ; then
    echo "2048" > /sys/devices/virtual/bdi/default/read_ahead_kb;
fi;

# Memory Management
if [ -e /sys/module/lowmemorykiller/parameters/adj ] ; then
    echo "0,1,2,4,6,15" > /sys/module/lowmemorykiller/parameters/adj;
fi;
if [ -e /sys/module/lowmemorykiller/parameters/minfree ] ; then
    echo "2560,4096,6144,12288,14336,18432" > /sys/module/lowmemorykiller/parameters/minfree;
fi;

# file system speedup
/system/xbin/busybox mount -o remount,noatime,barrier=0,nobh /system;
/system/xbin/busybox mount -o remount,noatime /data;
/system/xbin/busybox mount -o remount,noatime,barrier=0,nobh /cache;

# sysctl Network Tweaks
sysctl -w net.ipv4.tcp_timestamps=0
sysctl -w net.ipv4.tcp_tw_reuse=1
sysctl -w net.ipv4.tcp_sack=1
sysctl -w net.ipv4.tcp_dsack=1
sysctl -w net.ipv4.tcp_tw_recycle=1
sysctl -w net.ipv4.tcp_window_scaling=1
sysctl -w net.ipv4.tcp_keepalive_probes=5
sysctl -w net.ipv4.tcp_keepalive_intvl=30
sysctl -w net.ipv4.tcp_fin_timeout=30
sysctl -w net.ipv4.tcp_moderate_rcvbuf=1
sysctl -w net.ipv4.tcp_max_syn_backlog=4096
sysctl -w net.ipv4.icmp_echo_ignore_broadcasts=1
sysctl -w net.ipv4.icmp_echo_ignore_all=1
sysctl -w net.ipv4.icmp_ignore_bogus_error_responses=1
#sysctl -w net.ipv4.tcp_syncookies=0
sysctl -w net.ipv4.ip_dynaddr=0

# Other sysctl tweaks - Kernel, VM, file system
sysctl -w fs.file-max=524288
sysctl -w fs.inotify.max_queued_events=32000
sysctl -w fs.inotify.max_user_instances=256
sysctl -w fs.inotify.max_user_watches=10240
sysctl -w fs.file-max=524288
sysctl -w fs.inotify.max_queued_events=32000
sysctl -w fs.inotify.max_user_instances=256
sysctl -w fs.inotify.max_user_watches=10240
sysctl -w fs.lease-break-time=10
sysctl -w fs.nr_open=1048576
sysctl -w kernel.hung_task_timeout_secs=30
sysctl -w kernel.msgmax=65536
sysctl -w kernel.msgmni=65536
sysctl -w kernel.panic=30
sysctl -w kernel.panic_on_oops=1
sysctl -w kernel.random.read_wakeup_threshold=256
sysctl -w kernel.random.write_wakeup_threshold=256
sysctl -w kernel.sched_latency_ns=18000000
sysctl -w kernel.sched_min_granularity_ns=2000000
sysctl -w kernel.sched_wakeup_granularity_ns=3000000
sysctl -w kernel.sem="500 512000 64 2048";
sysctl -w kernel.shmmax=268435456
sysctl -w kernel.shmmni=4096
sysctl -w kernel.threads-max=524288
sysctl -w net.core.rmem_max=524288
sysctl -w net.core.wmem_max=524288
sysctl -w net.core.netdev_max_backlog=2500
sysctl -w net.ipv4.tcp_rmem="6144 87380 524288";
sysctl -w net.ipv4.tcp_wmem="6144 87380 524288";
sysctl -w vm.block_dump=0
sysctl -w vm.dirty_background_ratio=70
sysctl -w vm.dirty_expire_centisecs=500
sysctl -w vm.dirty_ratio=95
sysctl -w vm.dirty_writeback_centisecs=1000
sysctl -w vm.drop_caches=3
sysctl -w vm.laptop_mode=0
sysctl -w vm.min_free_kbytes=4096
sysctl -w vm.min_free_order_shift=4
sysctl -w vm.oom_kill_allocating_task=0
sysctl -w vm.overcommit_memory=1
sysctl -w vm.page-cluster=5
sysctl -w vm.panic_on_oom=0
sysctl -w vm.swappiness=30
sysctl -w vm.vfs_cache_pressure=50

#!/sbin/sh
log "Decreasing ext4 commit to 5 seconds with no buffers or access times
for k in $(/sbin/busybox mount | /sbin/busybox grep ext4 | /sbin/busybox cut -d " " -f3)
do
        sync
        /sbin/busybox mount -o remount,noatime,barrier=0,commit=5 $k
done

#!/system/bin/sh
#*******************************#
#         Geeky Engine          #
#         -------------         #
#      By Forever king@ xda     #
#-------------------------------#
#
# 
